import * as dayjs from 'dayjs'
// 中文语言
import 'dayjs/locale/zh-cn'
// 使用过去时间转化插件relativeTime
import rTime from 'dayjs/plugin/relativeTime'
// 使用utc格式
import utc from 'dayjs/plugin/utc'

// 使用中文语言包。固定格式
dayjs.locale('zh-cn')
// 使用插件。固定格式dayjs.extend(插件)
dayjs.extend(rTime)
// 使用插件 支持utc格式
dayjs.extend(utc)

// 相对时间  传入过去的时间戳 返回过去多久
/**
 *
 * @param num utc和时间戳格式
 * @returns 过去多久
 */
export const relativeTime = (num: number | string): string => {
  // @ts-ignore
  return dayjs().to(dayjs(num))
}

// utc格式使用
/**
 *
 * @param utc utc时间(string)
 * @param format 时间格式(YYYY-MM-DD HH:mm:ss)
 * @returns 时间格式(format)
 */
export const dateFromatUTC = (
  utc: string,
  format = 'YYYY-MM-DD HH:mm:ss'
): string => {
  return dayjs.utc(utc).utcOffset(8).format(format)
}

// 时间戳格式使用
/**
 *
 * @param stamp 时间戳(number)
 * @param format 时间格式(YYYY-MM-DD HH:mm:ss)
 * @returns 时间格式(format)
 */
export const dateFromatStamp = (
  stamp: number,
  format = 'YYYY-MM-DD HH:mm:ss'
): string => {
  if (stamp.toString().length === 10) stamp = stamp * 1000
  return dayjs.utc(stamp).format(format)
}
